1
Основы разработки ядер CUDA
AI021Lesson 2
00:00

Разработка ядра CUDA начинается с определения ядра, которое представляет собой специализированную функцию на языке C++, предназначенную для параллельного выполнения на большом количестве ядер NVIDIA GPU. Эти функции представляют собой базовую единицу работы в модели программирования CUDA, выступая в качестве моста, где последовательная логика хоста переходит в массово-параллельное выполнение на устройстве.

1. Указатель __global__

Указатель __global__ объявления является обязательным параметром интерфейса, который указывает компилятору генерировать код для GPU, при этом оставляя точку входа функции доступной для процессора. Функции, выполняемые на GPU и вызываемые с хоста, называются ядрами.

2. Среда выполнения

Ядра направляются к и выполняются на потоковых многопроцессорах (SM). SM — это основной вычислительный блок внутри видеокарты NVIDIA, отвечающий за управление сотнями одновременно выполняющихся потоков. Каждый SM обрабатывает блоки потоков и распределяет их на вычислительные ядра.

Правило синтаксиса: Ядра должны строго возвращать void. Поскольку они работают асинхронно относительно хоста, они не могут напрямую вернуть значение процессору; результаты должны быть записаны обратно в выделенную память устройства.

Хост (ЦП)Устройство (NVIDIA GPU)ПотоковыйМногопроцессор (SM)Запуск ядра
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>